Romeo :: Read Me

Introduction

Setting up Romeo
- How do I connect Romeo to my phone?
- Where do I access the menus on my phone?
- How do I customise the menus?
- How do I get Proximity and other actions working?
- Other Options - dockless, system menu, and ports

Creating or editing menus
- How do I create a menu?
- How do I edit a menu?
- What's the difference between a menu and a dialog?
- What can each menu item potentially do?
- Sharing and finding menus

About Romeo
- History
- Donations
- Source Code

Contact Details

Version history




Introduction

Welcome to Romeo!
Romeo is a little application to give you remote control of a Mac OS X system using your mobile phone and Bluetooth. Why pay for a remote when you already have all the necessary hardware?    Romeo currently supports SonyEricssons (t39, t68, t68i, t610, t616) natively, and Palm and Nokia 3650/7650 by running
Veta on those phones.
( Return to Index )





Setting up Romeo

- How do I connect Romeo to my phone?

The most important thing to remember when trying to set up Romeo is that Bluetooth must be on and your phone must be paired with your computer. If you're already using your phone via Address Book or iSync, that'll be done already. If you haven't already got Bluetooth set up, you'll need to go to System Preferences, click on "Settings" and turn Bluetooth on, and click on "Devices" and select "Pair New Device". Follow the instructions and your phone and Mac will be authorised to connect to each other.

Now launch Romeo, and click on the "Connect" button. If you haven't already used Romeo, it'll pop up a dialog asking you to select your phone. Ensure your phone has Bluetooth on and is discoverable, and click on the "Search" button. Click on your phone in the list, and press the "select" button.

Romeo should now have connected to your phone, and will do so whenever you click "Connect" in future.
(
Return to Index )


- How do I access the menus on my phone?

Romeo publishes its menu struture to "Accessories" on SonyEricssons. This is accessed by selecting "Connect" from the icon selection on your phone, and "Accessories" is usually the last item in the menu.

If you are using
Veta on Palm or Nokia, the menus will display in Veta's window - see the Veta ReadMe for more details.
( Return to Index )


- How do I customise the menus?

If you click on the "Options" button on the Romeo main window, an Options window is opened. The table on the left controls the menus that are sent to the phone. To toggle whether a menu is displayed on the phone, use the tickboxes; you can adjust the order of the items by dragging them into your preferred order.

Editing of menus is covered
here.
( Return to Index )


- How do I get Proximity and other actions working?

There are two types of action currently supported by Romeo - Proximity Actions, which occur when the phone comes in or goes out of range, and Ring Actions, which occur when your mobile rings whilst connected.

To activate Proximity Actions, click on "Options" in the main Romeo window and tick the "Always Auto-(re)connect" tickbox. Which actions occur are then controlled by clicking on the "Enter Range Actions..." and "Exit Range Actions..." buttons.

To activate Ring Actions, click on "Options" in the main Romeo window and ensure the "Perform Ations" button is ticked in the Ring Actions section. Actions can be customised by clicking on the "Phone Ring Actions..." button.

If the System Menu is activated, the menu can also toggle Proximity and Ring actions.

Phone Ring actions are not currently supported in Veta Universal.
(
Return to Index )


- Other Options - dockless, system menu, and ports

Romeo has a few other boxes in the Options window, with which you can customise how the application behaves and how it connects. The "Romeo Mode" section controls the behavior of the application - for example, you can add a System Menu to your menubar, hide the dock icon, and add Romeo to your login items. You can also edit the root menu name displayed on your phone in the Multiple Phones/Macs section, as well as controlling the port Romeo connects on. This can be useful if the default port conflicts with a third-party Bluetooth application, or if the mobile device requires you to connect on a specific port. For example, Veta Palm requires you to connect on Port 1, and Veta Nokia requires Port 5 - see the Veta readme for more details.
(
Return to Index )






Creating or editing menus

- How do I create a menu?

To add your own menu to control an application or set of applications, click on the "Options" button in the main Romeo window, and then click on the "Add" button beneath the menu table. You will then be asked whether you would like to create a menu or a dialog (see
What's the difference between a menu and a dialog?), and then the Menu will be created.
( Return to Index )


- How do I edit a menu?

To edit a menu, either double-click its entry in the Menu table (accessible by selecting "Options..." in the main romeo window), or select it and select "Edit". You are then able to customise it fully.
(
Return to Index )


- What's the difference between a Menu and a Dialog?

When creating a new Menu, you are asked what type of Menu you would like - a Menu or a Dialog. The two types differ significantly:

A Menu is a static numbered list of choices, each with a title. For an example, see the iTunes menu. These are good for a quick at-a-glance command list; you can also link a menu option to a dialog.

A Dialog is a window on the phone which can display either a static string of text or a AppleScript-Generated string of text. In addition, you can set each keypress in a dialog to perform a specific task (with the exception of the "No" key, which is reserved to exit the Dialog). This gives you many more possible keys than a menu, but is less intuitive at first glance. An example is the DVD Player Dialog, which displays the player status on the phone screen and allows you to use the joystick to play, stop, fast-forward and rewind.
(
Return to Index )


- What can each menu item potentially do?

Each menu item or dialog key can do any or all of three things:
- Control an AppleScript, communicating with other applications, performing tasks, or even controlling the graphical operating system using Apple's GUI Scripting Kit.
- Perform a Special Action, such as muting, controlling the volume, controlling the mouse cursor, scrolling - or even zooming in and out of the screen!
- Send a key combination to the frontmost application, using numbers, letters, some special characters and any or all of the modifier keys.

In addition, each Menu item can be linked to a fully-featured Dialog - see the iTunes "Current track" for an example.

      Advanced stuff: Since 0.9.2, Romeo itself is AppleScriptable to perform special commands , so that System Volume, Brightness, etc can be controlled according to other conditions. This is done using the following Applescript format:
      tell application "Romeo"
         do specialaction xxxxx
     end tell

     ... where xxxxx is one of the following codes:
     00 - Equivalent to pressing the 'Mute' key on Apple keyboards
     01 - Sound up key
     02 - Sound down key
     03 - Brightness up key
     04 - Brightness down key
     05 - Contrast up key (?)
     06 - Contrast down key (?)
     07 - Eject key
     30 - Zoom in
     31 - Zoom out
     40 - Mouse leftwards
     41 - Mouse rightwards
     42- Mouse upwards
     43 - Mouse downwards
     44 - Mouse diagonally upleft
     45 - Mouse diagonally upright
     46 - Mouse diagonally downleft
     47 - Mouse diagonally downright
     48 - Mouse single-click
     49 - Mouse double-click
     50 - Mouse right-click
     51 - Mouse click-hold
     53 - Cycle mouse speed between fast, slow and normal
     54 - Cycle mouse speed between slow and normal
     55 - Mouse speed normal
     56 - Mouse speed fast
     57 - Mouse speed rather fast
     58 - Mouse speed rather slow
     59 - Mouse speed slow
     60 - Scrollwheel up
     61 - Scrollwheel down
     62 - Scrollwheel left
     63 - Scrollwheel right
     97 - Activate Screensaver
     98 - Mute the computer, whatever its previous state      99 - Disconnect Romeo
(
Return to Index )


- Sharing and finding menus

Romeo can import and export both Menus and Actions, so you can share your newly-created plugins - and use the products of other people's hard work! this can be done (for Menus) using the "Export as Plugin" and "Import Plugin" buttons under the menu table (resulting in a .rmpl file), or (for Actions) using the "Export as Plugin" and "Import Plugin" buttons under each actions list (.rma). Alternatively, to import a plugin you can either double-click on the file in the Finder, or drag it into the appropriate table in Romeo.

Plugins submitted by other Romeo users can be found at
http://www.irowan.com/romeo/plugins.html. To add your plugin to the list, please send it to plugins@irowan.com.
( Return to Index )






About Romeo

- History

Romeo is a free (as in speech!) application written by Rowan Beentje of
Arboreal Software. Rowan has used macs since he was six or seven, and made several attempts to write programs for them since the age of fifteen. His biggest previous achievement was compiling zAngband, a roguelike adventure game, and tweaking the mac codebase. However, he picked up his first new mobile, a SonyEricsson T68m, in August 2002, and lusted after the idea of using it as a remote after seeing its use with XMMS on Linux systems with BTE. At that time there was not even a whisper of such an app being available for the Mac, so he finally started learning Cocoa and Objective-C in December 2002.

To his surprise, he had a basic, working control by the end of the month, and continued to develop and release to beta-testers for the next couple of months, culminating in a public release in February 2003. Since then, Romeo has improved significantly.

Because he learned how to properly program on Romeo (well, he's not quite there yet!) and because he wants to give something back, Rowan will keep Romeo free :)
( Return to Index )


- Donations

Romeo is and always will be free. However, donations are happily accepted! All donations will go towards the bandwidth bill and buying new developer hardware - the author has been lusting after an
iBook for some time now...

Donations can be made via PayPal; or just send the author a postcard. More details are available on this web page.
( Return to Index )


- Source Code

The author has made Romeo open-source since 0.9.1 to help anyone else interested in programming bluetooth applications, or for that matter to allow anyone to help develop Romeo. The source code is covered by the
GPL, and is available on the SourceForge Romeo CVS page. Interested developers are encouraged to contact the developer directly.
( Return to Index )






Contact Details

Arboreal's website is available at
http://irowan.com/arboreal.
The Romeo site - for news, plugins, and the latest release - is available at http://irowan.com/romeo.
A forum for Romeo users and menumakers is available here.
For help, discussion or to offer assistance, email the author at rowan@irowan.com.
( Return to Index )






Version history

0.9.3:
- Interface localized into French and German.
- Graphical bezel-style Caller ID, using the Address Book framework for IDing people.
- Improved dock and menubar menus, including a status item.
- Fixed dock icon hiding in 10.3 and higher.
- Now checks whether devices are paired and points the user to the Bluetooth Setup Assistant as appropriate.
- Added some basic AppleScript commands including connect, disconnect and status.
- Added user feedback display, fully controllable via AppleScript ("display text ...")
- Fixed zooming in Panther.
- Fixed AppleScript launching Classic applications in the supplied menus (thanks to Leor Bleier)
- New "About" window including links to the website.
- Interface tweaks including GUI layout, Open and Save dialogs remembering last directory, and improved error dialogs.
- Improved handling of drag-and-drop.
- Fixed Screensaver interaction methods to no longer conflict with Panther's screensaver security features
- Improved phone name fetching and storage.
- Improved handling of phone calls and SMSes whilst in a dialog.
- Improved processor use dramatically when bluetooth hardware is not present or disabled.
- Added key emulation for numpad keys.
- Updated default menus and actions. Due to changes and fixes, all users will be prompted for an upgrade.
- General bugfixes and improvements to make Romeo a better OS X citizen.
- Extensive code rewrites; if you've downloaded the code before and blanched, it's still bad, but it's much better.

0.9.2b:
- Fixed a simple, silly problem preventing proximity enter actions from occurring. Doh.

0.9.2:
- Connection code further improved - speed gains as well as bug fixes.
- Some fields renamed to maintain app consistency.
- Fixed a bug with table entries currently being edited not saving properly if the window closed.
- Tidied up the old menus to allow full use; default menu update coming in the next version.
- Double-click table entries to edit them.
- New items highlight for instant editing.
- Options window combined into one window which morphs between the individual edit views.
- Support for enter, escape and delete in editor windows, as well as command-s.
- Drag-and-drop plugins into tables to import them.
- Intelligent plugin importing.
- Changed the default plugin file format to .rmpl.
- Improved editor window resizing.
- Double-click plugins to import them.
- Click-and-drag/click-and-hold added as action type.
- Special actions menu added to editor windows.
- Underlying improvements: preferences automatically updated.
- Underlying improvments: plugins automatically updated to latest version.
- Basic applescript hooks added, with support for special actions.
- Improved documentation.

0.9.1:
- Bugfixes big and small. Should be far more stable and less error-prone.
- Released as open-source under the GPL (http://sourceforge.net/projects/romeo-osx/)
- Allows changing of root menu name and port selection to allow multi-mac control.
- Multiple Monitor Mouse Support.
- Dock Icon reflects connection status.
- Addition of Dock Menu.
- Addition of optional Menubar Menu (like the clock, resolution or sound menus).
- Added option to control login items.
- Resizeable windows for easier applescript editing
- Scrollwheel emulation.
- Reacts correctly to sleep events while connected.
- Improved T610 compatibility.
- Full compatibility with
Veta Universal.
- Compiled with latest Dev Tools, optimising code for the G5 so you can, um, click faster.

0.9.0:
- Made drag-and-drop more robust
- Drag-and-drop provides better feedback
- Added support for mouse speed in specialaction tags
- Fixed range actions triggering when app first launched
- Separated default 'toggle screensaver' into activate and deactivate halves
- Added a delay to the combination of disconnect and autoconnect
- Added support for right-click and double-click - click-hold still to come
- Improved all connection code to allow faster, more reliable connections
- Improved connection checking - fewer false out-of-ranges
- Fixed a bug with old preferences causing Accessories menu to flicker
- Removal of quit button in favour of the close gumdrop
- Options layout improved
- Various text strings made more accurate and understandable
- Improved KeyNote and PowerPoint menus
- Added rather nice DVD Player menu to show I still have some Applescript skills :)
- Added workaround for iTunes Visuals bug
- Further tweaks to most default menus
- Fixed a bug with menu creation in certain situations
- Added a cancel box to the menu creation sheet
- Fixed a problem with Dialog importing
- Phone name should report as (null) less often now
- Working disconnects from phone
- Nice iTunes menu (largely thanks to Jannik Nielsen)
- Much better mouse menu
- Squished a particularly nasty crash bug
- Menus items at once raised to correct number of 12
- Now you can add as many menus and items as you want; Romeo will only upload the first twelve.
- Full drag and drop support for reordering menu items
- "Delete plugin after importing" option in the import sheet
- Fixed bug in mouse mode which caused continuous mouse movement
- Enabled ring actions
- Enabled range actions
- Fixed autoconnect
- Pooled "Actions" list for ring actions and range actions, with the usual editing support
- Import and export as .rma files.
- Autoconnect code cleanup
- Multithreaded
- Menus no longer hardcoded but dynamically generated
- Vast stability improvements
- Added option to toggle whether individual menus are uploaded or not
- Ability to edit menus and dialogs
- Applescript support
- Keypress emulation
- Scripting of 'special actions' such as volume keys
- User-scriptable mouse movement, including diagonals
- Dialogs both as menus and as menu items
- Added menu importing and exporting in XML format
- Zoom mode no longer needs to be enabled in Universal Access
- Disconnect-from phone
- Start of reworking the basic interface

0.5 (initial public release):
- Added basic KeyNote control.
- Added basic PowerPoint control.
- Added a few useful PowerPoint commands.
- Added Visual toggling for iTunes.
- Finished auto-connect mode.
- Rewrote mute-on-ring mode.
- General code cleanup to fix a lingering bug on one computer.
- Fixed mouse mode under 10.2.4, the cursor no longer resets or wanders offscreen.

0.3 (initial beta-test release):
- A lot of the changes in this version are under-the-hood, so don't expect too many obvious changes. This release add little core functionality, but paves the way for future releases to keep crawling forward. That said...
- Reworked phone connection code; now works flawlessly on my system, although no doubt will not work on anyone else's.
- Added preferences.
- Implemented phone caching to enable direct connects. This allows multiple connections alongside apps such as Address Book.
- Cleaned up display code.
- Connecting and quitting should be a lot faster now.
- Added options window, even if much of it isn't used yet.
- Implemented mute-on-ring... unfortunately, this only acts as a press of the mute button, so if the system is already muted it unmutes it. Will be fixed as soon as I figure out how to detect the mute state...
- Mouse mode now generates events in 10.2.3 and above.
- Put stuff in the About... box. Major update, this. :p

0.1 (private):
- Initial release. Lots of features, very unpolished.

( Return to Index )